
#include "../Layout/VerticalLayout.h"
#include "../Layout/HorizontalLayout.h"
#include "Button.h" 

Button::Button(const std::string & _strName)
: m_button(_strName)
{
}

Button::~Button()
{
}

Gtk::Widget & Button::GetWidget()
{
	return m_button;
}

void Button::SetText(const std::string & _strText)
{
	m_button.set_label(_strText);
}

void Button::OnPress(VoidFunctionVoid _function)
{
	m_button.signal_pressed().connect( sigc::ptr_fun(_function) );
}

void Button::OnRelease(VoidFunctionVoid _function)
{
	m_button.signal_released().connect( sigc::ptr_fun(_function) );
}

void Button::Accept(IVerticalLayout * _pVerticalLayout)
{
	((VerticalLayout*)_pVerticalLayout)->Visit(this);
}

void Button::Accept(IHorizontalLayout * _pHorizontalLayout)
{
	((HorizontalLayout*)_pHorizontalLayout)->Visit(this);
}
